草庐IT

SciPy 常量模块

全部标签

ruby - 如何将模块混合到 rspec 上下文中

如何将模块混合到rspec上下文(也称为describe),以便模块的常量可用于规范?moduleFooFOO=1enddescribe'constantsinrspec'doincludeFoopconst_get(:FOO)#=>1pFOO#uninitializedconstantFOO(NameError)endconst_get可以在常量名称不能检索常量的情况下检索常量,这很有趣。是什么导致了rspec的奇怪行为?我正在使用MRI1.9.1和rspec2.8.0。症状同MRI1.8.7。 最佳答案 你想要extend,而不

ruby-on-rails - Rails - Devise Gem 删除注册和忘记密码模块

我使用Rails4和Devisegem进行用户身份验证,在我的项目中也可以很好地使用Devisegem。但我想删除Signup和ForgotPassword模块的功能。为了删除sign_up,在config/routes.rb文件中使用skip选项,例如,devise:users,:skip=>:registration它删除了sign_up模块也截断了路径生成。这很好。但同样,如果我为Forgotpassword添加此选项devise:users,:skip=>:recoverordevise:users,:skip=>:recoverable那是行不通的。我需要以相同的方法隐藏这两

Ruby:有没有办法获取类的封闭模块常量?

我正在用Ruby进行一些元编程,我需要在模块内动态生成一个同级类。这样做时,我想在模块上调用const_set,但直到运行时我才知道要调用哪个模块常量。一个例子:给定的类Foo::Bar::BazFoo::Quox::Quack我希望能够调用这样的函数(这里过于简单):defgenerate_fromklassmod=klass.enclosing_module#当使用Baz调用时,我最终想要的是一个定义为的新类Foo::Bar::GeneratedClassName还有嘎嘎,我想要Foo::Quox::GeneratedClassName我知道的唯一方法是拆分klass.name,然

Ruby:为什么卡住分配给常量的可变对象?

考虑一下rubocop报告的这个罪行lib/awesomelib/aws.rb:6:10:C:Style/MutableConstant:Freezemutableobjectsassignedtoconstants.IP='34.111.241.111'^^^^^^^^^^^^^^^^我为什么要卡住这个IP地址? 最佳答案 您应该卡住分配给IP的值,因为您已将IP声明为常量。这表示您不希望分配给IP的值发生变化。问题在于,在ruby​​中,为常量赋值并不能使该值不可变。如果您改变分配给常量的值,您只会收到警告。要使值实际上不可变,

ruby-on-rails - 未初始化常量 > ActionCable::Server::Configuration::ApplicationCable

当我运行服务器时,它的抛出错误显示在下面的日志中。我在谷歌上搜索了很多,但没有找到背后的原因。有人请点亮它。gem文件source'https://rubygems.org'#BundleedgeRailsinstead:gem'rails',github:'rails/rails'gem'rails','>=5.0.0.beta1','0.10.0.rc1'group:development,:testdogem'byebug'endgem'puma'group:developmentdogem'spring'end日志:/home/pd/.rvm/gems/ruby-2.2.4/g

ruby - 如何在 Ruby 中使用模块覆盖静态类方法?

moduleImodule???endclassSomeincludeImoduledefself.imethodputs"original"endendSome.imethod#=>"overrided"如何创建一个覆盖静态方法的模块?这是一道深入理解ruby特性的面试题。不要提出问题的另一种表述:) 最佳答案 好的,这是一个工作代码。请注意,您甚至不必触摸目标类!:)classKlassdefself.sayputs'class'endendmoduleFooModuledefself.includedbasebase.inst

ruby - __LINE__ 和 __FILE__ 常量在 Ruby 中是如何实现的?

似乎__FILE__和__LINE__常量会随着当前文件和正在执行的行号动态更新,我想知道Ruby中的行为是如何实现的?源码我已经grep过了,但是__LINE__和__FILE__出现的杂音太多了,不知道有没有人能帮我指出源码并提供了解其行为的线索。用Rubinis或MRI解释都可以。 最佳答案 __FILE__和__LINE__都被文字替换了directlyintheparser:casekeyword__FILE__:returnNEW_STR(rb_external_str_new_with_enc(ruby_sourcef

ruby-on-rails - Rails 关注方法覆盖另一个关注方法不像普通模块那样工作

假设我在ruby​​中有以下结构(没有rails)moduleParentdeffputs"inparent"endendmoduleChilddeffsuperputs"inchild"endendclassAincludeParentincludeChildendA.new.f#prints=>#inparent#inchild现在使用rails时的问题moduleParentextendActiveSupport::Concernincludeddodeffputs"InParent"endendendmoduleChildextendActiveSupport::Concern

ruby-on-rails - 如何测试 ruby​​ Mixin 模块?

我想知道测试rubymixin模块的最佳方法,在这种情况下用于ActiveRecord模型,但实际上这是一个适用于任何类的通用问题使用混合扩展。尝试stub你的mixin正在扩展的类,还是只测试真实类在你的类中存在和扩展更好?应用程序?Stubbing会移除测试的外部依赖性,但它无法在真实情况下测试mixin。如果测试失败,则可能是您的实现或您正在扩展的类发生了更改或损坏。如果使用stub类进行测试,您的测试可能会通过,但如果您正在扩展的类发生更改,则功能可能会被破坏。意见? 最佳答案 我不是很清楚你在问什么,但我会假设它是这样的,

ruby - 如何确定实例是否已被 Ruby 模块扩展?

给定一个对象和一个模块,如何检查对象是否已被模块扩展?好像没有对应的extend?方法moirb(main):001:0>moduleFoobarirb(main):002:1>end=>nilirb(main):003:0>o=Object.new=>#irb(main):004:0>o.class.include?Foobar=>falseirb(main):005:0>o.extendFoobar=>#irb(main):006:0>o.class.include?Foobar=>falseirb(main):007:0>o.class.included_modules=>[PP